-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 모던 UI 리디자인 및 사용자 경험 개선 #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add macOS-style window controls and header bar - Implement modern dark theme with slate colors - Add execution and clear buttons with hover animations - Simplify output panel to show only execution results - Remove unnecessary borders and sections for cleaner look - Improve Monaco Editor configuration with better fonts and scrolling - Add custom scrollbar styling and selection colors - Update tests to match new UI text content UI now resembles modern code editors like runJS with clean, minimal design.
- Remove 珥덇린??(reset) button from header - Remove TrashIcon import and clearResult usage - Simplify output panel to show only execution results - Remove unnecessary placeholder content and borders - Update test to check for execution button instead of placeholder text UI is now cleaner with only the essential execution functionality.
- Add Monaco Editor options to prevent accidental execution - Disable quick suggestions and auto-completion on Enter - Remove unused PlayIcon import from OutputPanel - Ensure only Cmd+Enter (or Ctrl+Enter) triggers code execution - Regular Enter key only performs line breaks as expected This prevents accidental code execution when users press Enter for line breaks.
- Use EditorProps['onMount'] type for better type safety - Implement proper Cmd+Enter key binding in Monaco Editor - Remove commented code and clean up implementation - Ensure only Cmd+Enter triggers code execution, not regular Enter - Maintain smooth cursor animations and user experience The editor now properly handles keyboard shortcuts with correct TypeScript types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a modern dark theme redesign and improves user experience by switching to a slate color palette, simplifying the UI by removing unnecessary elements, and refining keyboard shortcuts so that only Cmd+Enter executes code while Enter creates newlines.
- Modern dark theme using slate colors with macOS-style window controls
- Simplified output panel showing only execution results
- Fixed Monaco Editor keyboard shortcuts to prevent accidental code execution
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/executeJS/src/widgets/output-panel/output-panel.tsx | Simplified output panel to display only execution results with dark theme styling |
| apps/executeJS/src/widgets/code-editor/code-editor.tsx | Updated Monaco Editor with proper TypeScript types and keyboard shortcut configuration |
| apps/executeJS/src/pages/editor/editor-page.tsx | Added header with execution button and applied dark theme styling throughout |
| apps/executeJS/src/pages/editor/editor-page.test.tsx | Updated test to match new UI text |
| apps/executeJS/src/index.css | Added global dark theme styles including scrollbar and selection styling |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| </Text> | ||
| </Flex> | ||
| </Box> | ||
| <div className="h-screen w-full p-6 bg-slate-900" /> |
Copilot
AI
Oct 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using h-screen makes the empty state panel full viewport height instead of matching its container height. This should be h-full to properly fill the parent container.
| <div className="h-screen w-full p-6 bg-slate-900" /> | |
| <div className="h-full w-full p-6 bg-slate-900" /> |
| quickSuggestions: false, | ||
| suggestOnTriggerCharacters: false, | ||
| acceptSuggestionOnEnter: 'off' as const, |
Copilot
AI
Oct 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These options disable autocomplete suggestions entirely. While the comment mentions preventing Enter key execution, these settings remove helpful code completion features. Consider removing these lines since the keyboard shortcut configuration already ensures Enter only creates newlines.
| quickSuggestions: false, | |
| suggestOnTriggerCharacters: false, | |
| acceptSuggestionOnEnter: 'off' as const, |
| onExecute?.(currentValue); | ||
| } | ||
| ); | ||
|
|
Copilot
AI
Oct 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Empty line should be removed as it serves no purpose after the closing brace of the addCommand block.
apps/executeJS/src/index.css
Outdated
| .btn-primary { | ||
| @apply bg-blue-600 hover:bg-blue-700 active:bg-blue-800; | ||
| @apply transition-all duration-200 ease-in-out; | ||
| @apply transform hover:scale-105 active:scale-95; | ||
| } | ||
|
|
||
| .btn-secondary { | ||
| @apply bg-slate-700 hover:bg-slate-600 active:bg-slate-500; | ||
| @apply transition-all duration-200 ease-in-out; | ||
| @apply transform hover:scale-105 active:scale-95; | ||
| } | ||
|
|
||
| /* 코드 블록 스타일링 */ | ||
| .code-block { | ||
| @apply bg-slate-950 border border-slate-700 rounded-lg; | ||
| @apply font-mono text-sm text-slate-300; | ||
| @apply overflow-x-auto; | ||
| } | ||
|
|
||
| /* 로딩 애니메이션 */ | ||
| .loading-spinner { | ||
| @apply animate-spin w-5 h-5 border-2 border-blue-500 border-t-transparent rounded-full; | ||
| } |
Copilot
AI
Oct 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CSS classes .btn-primary, .btn-secondary, .code-block, and .loading-spinner are defined but never used in the codebase. The execute button uses inline Tailwind classes instead. Remove these unused utility classes or apply them to actual components.
| .btn-primary { | |
| @apply bg-blue-600 hover:bg-blue-700 active:bg-blue-800; | |
| @apply transition-all duration-200 ease-in-out; | |
| @apply transform hover:scale-105 active:scale-95; | |
| } | |
| .btn-secondary { | |
| @apply bg-slate-700 hover:bg-slate-600 active:bg-slate-500; | |
| @apply transition-all duration-200 ease-in-out; | |
| @apply transform hover:scale-105 active:scale-95; | |
| } | |
| /* 코드 블록 스타일링 */ | |
| .code-block { | |
| @apply bg-slate-950 border border-slate-700 rounded-lg; | |
| @apply font-mono text-sm text-slate-300; | |
| @apply overflow-x-auto; | |
| } | |
| /* 로딩 애니메이션 */ | |
| .loading-spinner { | |
| @apply animate-spin w-5 h-5 border-2 border-blue-500 border-t-transparent rounded-full; | |
| } | |
| /* 코드 블록 스타일링 */ | |
| /* 로딩 애니메이션 */ |
- Remove .btn-primary, .btn-secondary, .code-block, .loading-spinner classes - These classes were defined but never used in the codebase - Execute button uses inline Tailwind classes instead - Clean up CSS to remove dead code Addresses Copilot AI review feedback on PR #4
- Fix code style issues in 4 files: - editor-page.test.tsx - editor-page.tsx - code-editor.tsx - output-panel.tsx - Apply Prettier formatting rules consistently - Resolve CI/CD formatting check failures Addresses GitHub Actions formatting check failure
- Remove .btn-primary, .btn-secondary, .code-block, .loading-spinner classes - These classes were defined but never used in the codebase - Execute button uses inline Tailwind classes instead - Clean up CSS to remove dead code Addresses Copilot AI review feedback on PR #4
feat: 모던 UI 리디자인 및 사용자 경험 개선
📋 요약
이 PR은 모던한 다크 테마로 리디자인하고, 사용자 경험을 크게 개선합니다. Monaco Editor의 키보드 단축키를 수정하고, 불필요한 UI 요소를 제거하여 더 깔끔하고 직관적인 인터페이스를 제공합니다.
🚀 주요 변경사항
🎨 모던 UI 리디자인
🎯 사용자 경험 개선
⚡ 코드 에디터 최적화
EditorProps['onMount']를 사용한 정확한 TypeScript 타입🎯 개선된 사용자 경험
🔧 기술적 세부사항
경로 별칭
FSD 레이어 규칙
@별칭을 사용한 깔끔한 import 경로Monaco Editor 설정
🎨 UI 스크린샷
이전
이후
@별칭을 사용한 절대 경로 import🧪 테스트
📝 주요 변경사항
🔄 마이그레이션 가이드
로컬 변경사항이 있다면:
📚 참고 자료
🔗 관련 커밋
feat: redesign UI with modern dark theme and simplified outputrefactor: remove reset button and simplify output panelfix: ensure code execution only works with Cmd+Enterrefactor: improve Monaco Editor key binding and type safety🎯 장점
🚀 다음 단계